'use strict';
/** 
 * 桌子用户信息 数组是每张桌子的玩家 GameRound游戏局数 Num玩家数量 Password桌子密码 GameStarted游戏是否开始 GameStatus游戏状态 TimeStart开始时间 TimeSit最后坐下时间 List玩家列表 Look旁观用户
 * TABLE = [{GameRound:0,Num:0,Password:"",GameStarted:false,GameStatus:0,TimeStart:0,TimeSit:0,List:[],Look:{}}]
 */
global.TABLE || (global.TABLE = []);
const gm = require(ROOMCFG.path), bs = require("../module/base");

exports = {
    /** 玩家坐下 */
    sitDown(tid, u, pwd = ""){
        if(!TABLE[tid]) TABLE[tid] = {GameRound:0,Num:0,Password:"",GameStarted:false,GameStatus:0,TimeStart:0,TimeSit:0,List:[],Look:{}};
        let tb = TABLE[tid];
        rmc = rmc[KINDID][SERVERID];
        let i=0;
        for(;i<rmc.ChairNum;i++){
            if(!tb.List[i]) break;
        }
        if(i == rmc.ChairNum){ //坐下失败
            return this.sendFail(u);
        }
        if(tb.Password != pwd){ //桌子有密码判断密码
            return this.sendFail(u);
        }
        tb.List[i] = u;
        u.Info.wTableID = tid;
        u.Info.wChairID = i;
        u.Info.GameStatus = bs.US.SIT;
        //通知C代码
        gm.OnActionUserSitDown(tid, u);

        this.sendStatus(u);
        return true;
    },                
    /** 玩家起立 */
    standUp(u){
        
    },
    /** 玩家旁观 */
    lookOn(tid, u){

    },
    /** 玩家断线 */
    offLine(tid, u){

    },
    /** 重新进入 */
    reConnect(tid, u){

    },
    /** 是否在游戏 */
    isPlay(u){

    },
    sendStatus(u){
        
    },
    sendFail(u){
        return false;
    }
}